package edu.ar.bases.dvdstore.domainmodel.entities;

import java.util.Set;

import edu.ar.bases.dvdstore.domainmodel.entities.interfaces.ICliente;
import edu.ar.bases.dvdstore.domainmodel.entities.interfaces.IFactura;




public class Factura implements IFactura{

	private int facturaID;
	private String fecha;
	private ICliente cliente;
	private Set<RenglonFactura> renglonFacturas;

	public Factura(){

	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((cliente == null) ? 0 : cliente.hashCode());
		result = prime * result + facturaID;
		result = prime * result + ((fecha == null) ? 0 : fecha.hashCode());
		result = prime * result
				+ ((renglonFacturas == null) ? 0 : renglonFacturas.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final Factura other = (Factura) obj;
		if (cliente == null) {
			if (other.cliente != null)
				return false;
		} else if (!cliente.equals(other.cliente))
			return false;
		if (facturaID != other.facturaID)
			return false;
		if (fecha == null) {
			if (other.fecha != null)
				return false;
		} else if (!fecha.equals(other.fecha))
			return false;
		if (renglonFacturas == null) {
			if (other.renglonFacturas != null)
				return false;
		} else if (!renglonFacturas.equals(other.renglonFacturas))
			return false;
		return true;
	}

	public void finalize() throws Throwable {

	}

	
	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#getFacturaID()
	 */
	public int getFacturaID() {
		return facturaID;
	}

	
	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#setFacturaID(int)
	 */
	public void setFacturaID(int facturaID) {
		this.facturaID = facturaID;
	}

	
	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#getFecha()
	 */
	public String getFecha() {
		return fecha;
	}

	
	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#setFecha(java.lang.String)
	 */
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	
	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#getRenglonFactura()
	 */
	public Set<RenglonFactura> getRenglonFacturas() {
		return renglonFacturas;
	}

	
	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#setRenglonFactura(java.util.Set)
	 */
	public void setRenglonFacturas(Set<RenglonFactura> renglonFacturas) {
		this.renglonFacturas = renglonFacturas;
	}

	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#getCliente()
	 */
	public ICliente getCliente() {
		return cliente;
	}

	
	/* (non-Javadoc)
	 * @see edu.ar.bases.dvdstore.domainmodel.entities.IFactura#setCliente(edu.ar.bases.dvdstore.domainmodel.entities.interfaces.ICliente)
	 */
	public void setCliente(ICliente cliente) {
		this.cliente = cliente;
	}


}